Inferring Local ( Non - ) Aliasing and Strings for Memory Safety 1
نویسندگان
چکیده
We propose an original approach for checking memory safety of C pointer programs, by combining deductive verification and abstract interpretation techniques. The approach is modular and contextual, thanks to the use of Hoare-style annotations (preand postconditions), allowing us to verify each C function independently. Deductive verification is used to check these annotations in a sound way. Abstract interpretation techniques are used to automatically generate such annotations, in an idiomatic way: standard practice of C programming is identified and incorporated as heuristics. Our first contribution is a set of techniques for identifying aliasing and strings, which we do in a local setting rather than through a global analysis as it is done usually. Our separation analysis in particular is a totally new treatment of non-aliasing. We present for the first time two abstract lattices to deal with local pointer aliasing and local pointer non-aliasing in an abstract interpretation framework. Our second contribution is the design of an abstract domain for implications, which makes it possible to build efficient contextual analyses. Our last contribution is an efficient back-and-forth propagation method to generate contextual annotations in a modular way, in the framework of abstract interpretation. We implemented our method in Caduceus, a tool for the verification of C programs, and successfully generated appropriate annotations for the C standard string library functions.
منابع مشابه
Inferring Alias Contracts in VCC using Separation Analysis
The main goal of this work is to enable an interplay between two different verification tool chains: Frama-C, developed concomitantly by Commissariat à l’Énergie Atomique et aux Énergies Alternatives and Inria, and the Verified C Compiler, developed by Microsoft Research. Both tools have a long history and contain powerful algorithms for static verification of C source code. Both tools address ...
متن کاملAttenuation of spatial aliasing in CMP domain by non-linear interpolation of seismic data along local slopes
Spatial aliasing is an unwanted side effect that produces artifacts during seismic data processing, imaging and interpolation. It is often caused by insufficient spatial sampling of seismic data and often happens in CMP (Common Mid-Point) gather. To tackle this artifact, several techniques have been developed in time-space domain as well as frequency domain such as frequency-wavenumber, frequen...
متن کاملCRUST: A Bounded Verifier for Rust
Rust is a modern systems language that provides guaranteed memory safety through static analysis. However, Rust includes an escape hatch in the form of “unsafe code,” which the compiler assumes to be memory safe and to preserve crucial pointer aliasing invariants. Unsafe code appears in many data structure implementations and other essential libraries, and bugs in this code can lead to memory s...
متن کاملHardware/Software Coherence in Hybrid Memory Models
Current cache coherence protocols limit the scalability of chip multiprocessor (CMP) architectures. The expected increase of the number of cores in next generation CMPs call for an evolution of the memory subsystem. One solution is to introduce a local memory side to the cache hierarchy, forming a hybrid memory model. On the one hand, local memories are more power-efficient than caches and they...
متن کاملA Fast and Accurate Global Maximum Power Point Tracking Method for Solar Strings under Partial Shading Conditions
This paper presents a model-based approach for the global maximum power point (GMPP) tracking of solar strings under partial shading conditions. In the proposed method, the GMPP voltage is estimated without any need to solve numerically the implicit and nonlinear equations of the photovoltaic (PV) string model. In contrast to the existing methods in which first the locations of all the local pe...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007